<?php
Class GestdateComponent extends Object{
    var $lang='en';
    var $langs=array('fr','en');
    var $MyMonth=array();
    var $MyMonthM = array();
    var $MyMonthLetters = array();

    function __construct(){
        
            if (isset($this->lang) ){
                if (in_array($this->lang,  $this->langs)){
                    switch ($this->lang){
                        case 'fr':
                            $this->MyMonth=  $this->numMois_M_Fr;
                            $this->MyMonthM=  $this->numMois_MM_Fr;
                            $this->MyMonthLetters=  $this->moisFr;
                            break;
                        case 'en':
                            $this->MyMonth=  $this->numMois_M_En;
                            $this->MyMonthM=  $this->numMois_MM_En;
                            $this->MyMonthLetters=  $this->moisEn;
                            break;
                    }
                }
            }
    }

    function getTimestamp($date){
        $date=explode(" ",$date);
        $heure= explode(":",$date[1]);
        $date= explode("-",$date[0]);
        return mktime($heure[0],$heure[1],$heure[2],$date[1],$date[2],$date[0]);
    }
    function getFormatedDate($date){
      if ($this->_checkthedate($date)){
       $d=new datetime($date);
       return "the ".$d->format("jS F Y")." at ".$d->format("H:i:s");
      }else{
          return $date;
      }
    }
    function _checkthedate($date){
        $date=explode(" ",$date);
        $date= explode("-",$date[0]);
        return checkdate($date[1],$date[2],$date[0]);
    }

     function numMoisM($num=null){


         if ($num==null){
            return $this->MyMonth;
         }else{
             return $this->MyMonth[$num];
         }

    }

    function numMoisMM($num=null){


         if ($num==null){
             return $this->MyMonthM;
         }else{
             return $this->MyMonthM[$num];
         }


    }
    function mois($num){

        if ($num==null){
            return $this->MyMonthLetters;
         }else{
             return $this->MyMonthLetters[$num];
         }

    }
     function getNbOpenDays($date_start, $date_stop) {
	$arr_bank_holidays = array(); // Tableau des jours feriés
	$date_start=strtotime($date_start);
	$date_stop=strtotime($date_stop);
	// On boucle dans le cas où l'année de départ serait différente de l'année d'arrivée
	$diff_year = date('Y', $date_stop) - date('Y', $date_start);
	for ($i = 0; $i <= $diff_year; $i++) {
		$year = (int)date('Y', $date_start) + $i;
		// Liste des jours feriés
		$arr_bank_holidays[] = '1_1_'.$year; // Jour de l'an
		$arr_bank_holidays[] = '1_5_'.$year; // Fete du travail
		$arr_bank_holidays[] = '8_5_'.$year; // Victoire 1945
		$arr_bank_holidays[] = '14_7_'.$year; // Fete nationale
		$arr_bank_holidays[] = '15_8_'.$year; // Assomption
		$arr_bank_holidays[] = '1_11_'.$year; // Toussaint
		$arr_bank_holidays[] = '11_11_'.$year; // Armistice 1918
		$arr_bank_holidays[] = '25_12_'.$year; // Noel

		// Récupération de paques. Permet ensuite d'obtenir le jour de l'ascension et celui de la pentecote
		$easter = easter_date($year);
		$arr_bank_holidays[] = date('j_n_'.$year, $easter + 86400); // Paques
		$arr_bank_holidays[] = date('j_n_'.$year, $easter + (86400*39)); // Ascension
		$arr_bank_holidays[] = date('j_n_'.$year, $easter + (86400*50)); // Pentecote
	}
	//print_r($arr_bank_holidays);
	$nb_days_open = 0;
	// Mettre <= si on souhaite prendre en compte le dernier jour dans le décompte
	while ($date_start < $date_stop) {
		// Si le jour suivant n'est ni un dimanche (0) ou un samedi (6), ni un jour férié, on incrémente les jours ouvrés
		if (!in_array(date('w', $date_start), array(0, 6))
		&& !in_array(date('j_n_'.date('Y', $date_start), $date_start), $arr_bank_holidays)) {
			$nb_days_open++;
		}
		$date_start = mktime(date('H', $date_start), date('i', $date_start), date('s', $date_start), date('m', $date_start), date('d', $date_start) + 1, date('Y', $date_start));
	}
	return $nb_days_open;
}



var $numMois_M_En=array(
                    '1'=>'january',
                    '2'=>'february',
                    '3'=>'marsh',
                    '4'=>'april',
                    '5'=> 'may',
                    '6'=>'june',
                    '7'=>'july',
                    '8'=>'august',
                    '9'=>'september',
                    '10'=>'october',
                    '11'=>'november',
                    '12'=>'décember'
            );
    var $numMois_MM_En=array(
                    '01'=>'january',
                    '02'=>'february',
                    '03'=>'marsh',
                    '04'=>'april',
                    '05'=> 'may',
                    '06'=>'june',
                    '07'=>'july',
                    '08'=>'august',
                    '09'=>'september',
                    '10'=>'october',
                    '11'=>'november',
                    '12'=>'décember'
            );
    var $moisEn=array(
                    'january'=>'01',
                    'february'=>'02',
                    'marsh'=>'03',
                    'april'=>'04',
                    'may'=>'05' ,
                    'june'=>'06',
                    'july'=>'07',
                    'august'=>'08',
                    'september'=>'09',
                    'october'=>'10',
                    'november'=>'11',
                    'décember'=>'12'
            );
    var $numMois_M_Fr=array(
                    '1'=>'janvier',
                    '2'=>'février',
                    '3'=>'mars',
                    '4'=>'avril',
                    '5'=> 'mai',
                    '6'=>'juin',
                    '7'=>'juillet',
                    '8'=>'aôut',
                    '9'=>'septembre',
                    '10'=>'octobre',
                    '11'=>'novembre',
                    '12'=>'décembre'
            );
    var $numMois_MM_Fr=array(
                    '01'=>'janvier',
                    '02'=>'février',
                    '03'=>'mars',
                    '04'=>'avril',
                    '05'=> 'mai',
                    '06'=>'juin',
                    '07'=>'juillet',
                    '08'=>'aôut',
                    '09'=>'septembre',
                    '10'=>'octobre',
                    '11'=>'novembre',
                    '12'=>'décembre'
            );
    var $moisFr=array(
                    'janvier'=>'01',
                    'février'=>'02',
                    'mars'=>'03',
                    'avril'=>'04',
                    'mai'=>'05',
                    'juin'=>'06',
                    'juillet'=>'07',
                    'aôut'=>'08',
                    'septembre'=>'09',
                    'octobre'=>'10',
                    'novembre'=>'11',
                    'décembre'=>'12'
            );
}

?>
